enum dtype_xkrnl_ctrl {
	TYPE(XKRNL_CTRL)=0x4320
};
enum subtype_xkrnl_ctrl {
	SUBTYPE(XKRNL_CTRL,CTL_HEAD)=0x1,
	SUBTYPE(XKRNL_CTRL,CTL_PACKET),
	SUBTYPE(XKRNL_CTRL,WHITELIST_ACTION),
	SUBTYPE(XKRNL_CTRL,AUDIT_ACTION),
	SUBTYPE(XKRNL_CTRL,SEC_ACTION),
	SUBTYPE(XKRNL_CTRL,CONFIG_DATA)
};
typedef struct xkrnl_ctrl_ctl_head{
	int uCode;
	int wParam;
	int lParam;
	int cntLen;
}__attribute__((packed)) RECORD(XKRNL_CTRL,CTL_HEAD);

typedef struct xkrnl_ctrl_ctl_packet{
	RECORD(XKRNL_CTRL,CTL_HEAD) hdr;
	BYTE * inputBuffer;
}__attribute__((packed)) RECORD(XKRNL_CTRL,CTL_PACKET);

typedef struct xkrnl_ctrl_audit_action{
	UINT32 audit_type;
	int record_num;
}__attribute__((packed)) RECORD(XKRNL_CTRL,AUDIT_ACTION);

typedef struct xkrnl_ctrl_sec_action{
	UINT32 sec_type;
	BYTE uuid[32];
}__attribute__((packed)) RECORD(XKRNL_CTRL,SEC_ACTION);

typedef struct xkrnl_ctrl_config_data{
	int bWhiteListEnable;
	int bWatchFileEvent;
    int bAclEnable;
    char watchFolder[512];
    char aclFolder[512];
}__attribute__((packed)) RECORD(XKRNL_CTRL,CONFIG_DATA);
